ResourceLoaderAware接口是一个特殊的标记接口,用于标识期望获得ResourceLoader引用的对象。

public interface ResourceLoaderAware {

    void setResourceLoader(ResourceLoader resourceLoader);
}

当一个类实现了ResourceLoaderAware且发布到应用程序上下文中(作为bean被Spring管理),它会被应用程序上下文识别为ResourceLoadAware。应用程序上下文会调用setResourceLoader(ResourceLoader),将自身作为参数传入(请记住,Spring中所有的应用程序上下文都实现了ResourceLoader接口)。
当然,由于ApplicationContext是一个ResourceLoader,bean也可以实现ApplicationContextAware接口并直接使用提供的应用程序上下文来加载资源,但通常情况下,最好是特指出ResourceLoader接口(如果需要的话)。
从Spring 2.5开始,你可以依靠ResourceLoader的自动装配来替代实现ResourceLoaderAware接口。现在,“传统”构造函数和byType自动装配模式(如第7.4.5节“自动装配协作者”中所述)能够分别为构造函数参数或设置方法参数提供ResourceLoader类型的依赖关系。为了获得更大的灵活性(包括自动装配字段和多个参数方法的能力),请考虑使用新的基于注释的自动装配功能。在这种情况下,只要字段,构造函数或方法携带@Autowired注解,ResourceLoader就会被自动装载到期望ResourceLoader类型的字段,构造函数参数或方法参数中。更多信息,请见6.9.2 "@Autowired"